package com.google.android.material.motion.sample; import android.os.Bundle; import android.support.v4.view.MotionEventCompat; import android.support.v7.app.AppCompatActivity; import android.view.MotionEvent; import android.view.View; import com.google.android.material.motion.MotionRuntime; import com.google.android.material.motion.tweens.MaterialAnimator; public class TweenActivity extends AppCompatActivity { private final MotionRuntime runtime = new MotionRuntime(); private View target; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tossable_tap_activity); target = findViewById(R.id.target); target.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { v.removeOnLayoutChangeListener(this); runDemo(); } }); } private void runDemo() { target.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = MotionEventCompat.getActionMasked(event); switch (action) { case MotionEvent.ACTION_DOWN: { MaterialAnimator animator = MaterialAnimator.ofFloat(target, View.ALPHA, 0f); animator.setDuration(1000); animator.start(runtime); break; } case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: { MaterialAnimator animator = MaterialAnimator.ofFloat(target, View.ALPHA, 1f); animator.setDuration(1000); animator.start(runtime); break; } } return true; } }); } }